.\"
.\" Copyright (C) 2010 Red Hat, Inc. All Rights Reserved.
.\" Written by David Howells (dhowells@redhat.com)
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License
.\" as published by the Free Software Foundation; either version
.\" 2 of the License, or (at your option) any later version.
.\"
.TH KEYCTL_SESSION_TO_PARENT 3 "20 Feb 2014" Linux "Linux Key Management Calls"
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH NAME
keyctl_session_to_parent \- Set the parent process's session keyring
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH SYNOPSIS
.nf
.B #include <keyutils.h>
.sp
.BI "long keyctl_session_to_parent();"
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH DESCRIPTION
.BR keyctl_session_to_parent ()
changes the session keyring to which the calling process's parent subscribes
to be the that of the calling process.
.P
The keyring must have
.B link
permission available to the calling process, the parent process must have the
same UIDs/GIDs as the calling process, and the LSM must not reject the
replacement.  Furthermore, this may not be used to affect init or a kernel
thread.
.P
Note that the replacement will not take immediate effect upon the parent
process, but will rather be deferred to the next time it returns to userspace
from kernel space.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH RETURN VALUE
On success
.BR keyctl_session_to_parent ()
returns 0.  On error, the value
.B -1
will be returned and errno will have been set to an appropriate error.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH ERRORS
.TP
.B ENOMEM
Insufficient memory to create a key.
.TP
.B EPERM
The credentials of the parent don't match those of the caller.
.TP
.B EACCES
The named keyring exists, but is not
.B linkable
by the calling process.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH LINKING
This is a library function that can be found in
.IR libkeyutils .
When linking,
.B -lkeyutils
should be specified to the linker.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH SEE ALSO
.BR keyctl (1),
.br
.BR add_key (2),
.br
.BR keyctl (2),
.br
.BR request_key (2),
.br
.BR keyctl (3),
.br
.BR session-keyring (7),
.br
.BR user-session-keyring (7),
.br
.BR keyutils (7),
.br
.BR keyrings (7)
